package de.justphil.tcg.tcgserver.rest;

import de.justphil.tcg.tcgserver.commons.domain.complete.CCard;
import de.justphil.tcg.tcgserver.commons.domain.complete.CCardInstance;
import de.justphil.tcg.tcgserver.commons.domain.complete.CDeck;
import de.justphil.tcg.tcgserver.commons.domain.complete.CGame;
import de.justphil.tcg.tcgserver.commons.domain.complete.CNewGame;
import de.justphil.tcg.tcgserver.commons.domain.complete.CProperty;
import de.justphil.tcg.tcgserver.commons.domain.complete.CUser;
import de.justphil.tcg.tcgserver.commons.domain.wrappers.ListRes;

public class ClusterData {
	
	private final ListRes<CUser> allUsers;
	
	private ListRes<CGame> userGames;
	private ListRes<CCardInstance> userCardInstances;
	private ListRes<CDeck> userDecks;
	
	private final ListRes<CGame> allGames;
	
	private final ListRes<CDeck> allDecks;
	private ListRes<CCardInstance> deckCardInstances;
	
	private final ListRes<CCard> allCards;
	private ListRes<CCardInstance> cardCardInstances;
	
	private final ListRes<CCardInstance> allCardInstances;
	
	private final ListRes<CProperty> allProperties;
	
	private final ListRes<CNewGame> allNewGames;

	public ClusterData(ListRes<CUser> allUsers, ListRes<CGame> allGames,
			ListRes<CDeck> allDecks, ListRes<CCard> allCards,
			ListRes<CCardInstance> allCardInstances,
			ListRes<CProperty> allProperties, ListRes<CNewGame> allNewGames) {
		super();
		this.allUsers = allUsers;
		this.allGames = allGames;
		this.allDecks = allDecks;
		this.allCards = allCards;
		this.allCardInstances = allCardInstances;
		this.allProperties = allProperties;
		this.allNewGames = allNewGames;
	}
	
	/* ######################################################################## */
	/* ######################################################################## */
	/* ######################################################################## */

	public ListRes<CUser> getAllUsers() {
		return allUsers;
	}

	public ListRes<CGame> getAllGames() {
		return allGames;
	}

	public ListRes<CDeck> getAllDecks() {
		return allDecks;
	}

	public ListRes<CCard> getAllCards() {
		return allCards;
	}

	public ListRes<CCardInstance> getAllCardInstances() {
		return allCardInstances;
	}

	public ListRes<CProperty> getAllProperties() {
		return allProperties;
	}

	public ListRes<CNewGame> getAllNewGames() {
		return allNewGames;
	}
	
	/* ######################################################################## */
	/* ######################################################################## */
	/* ######################################################################## */
	
	public ListRes<CGame> getUserGames() {
		return userGames;
	}

	public ListRes<CCardInstance> getUserCardInstances() {
		return userCardInstances;
	}

	public ListRes<CDeck> getUserDecks() {
		return userDecks;
	}

	public ListRes<CCardInstance> getDeckCardInstances() {
		return deckCardInstances;
	}

	public ListRes<CCardInstance> getCardCardInstances() {
		return cardCardInstances;
	}

	public void setUserGames(ListRes<CGame> userGames) {
		this.userGames = userGames;
	}

	public void setUserCardInstances(ListRes<CCardInstance> userCardInstances) {
		this.userCardInstances = userCardInstances;
	}

	public void setUserDecks(ListRes<CDeck> userDecks) {
		this.userDecks = userDecks;
	}

	public void setDeckCardInstances(ListRes<CCardInstance> deckCardInstances) {
		this.deckCardInstances = deckCardInstances;
	}

	public void setCardCardInstances(ListRes<CCardInstance> cardCardInstances) {
		this.cardCardInstances = cardCardInstances;
	}

}
